<?
	/* Se asegura que el archivo es incluido por el index */
		defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );
	/* Cuando se hace el include del archivo automaticamente crea un objeto y lo guarda en una variable temporal */
		$this->oTmpObject = new Menu_componente_lst( $this );

	class Menu_componente_lst extends Lst
	{
	function Menu_componente_lst( &$oModule )
		{
			$this->Lst( $oModule );
		}
	function setLevel()
		{
			switch ( $this->getOptionView() )
			{
				case 'E':
				case 'L':
					$this->aShowColumns = array( 'Componente', 'Parametros', 'Menu' );
					break;
			}
			if ( array_key_exists( 'ncComponente' , $this->aFields )  ) unset($this->aShowColumns[array_search( 'Componente',$this->aShowColumns)]);
			if ( array_key_exists( 'ncMenu' , $this->aFields )  ) 
			{
				unset($this->aShowColumns[array_search( 'Menu',$this->aShowColumns)]);
				$this->aShowColumns[] = 'nOrden';
			} else
			{
				$this->aShowColumns[] = 'Ruta';
				$this->oMenuLst = $this->oModule->loadClass( 'menu_lst' );
			}
		}
	function makeColumn ( $aRow, $cField )
		{
			switch( $cField )
			{
				case 'Ruta':
					$cReturn = $this->oMenuLst->obtenerRutaMenu($aRow['ncMenu']) ;
					break;
				case 'Parametros':
					$cReturn = str_replace( '&amp;', ' ', $aRow['cParametros']);
					break;
				default:
					return false;
				break;
			}
			return $cReturn;
		}
	function initialize()
		{
			// Obtiene de su filtro los parametros que necesita para armar el query
			$this->oFiltro = $this->oModule->loadClass( 'Menu_componente_frm' );
			$this->aFields = array_merge (  (array)$this->oFiltro->getFieldArray() , (array)$this->aFields);
			$this->aFields[nPanel] = getParam('nPanel');
			// Setea el titulo y la descripcion de la tabla
			$this->setTitle ( "Menu - Componente" );
			$this->setSummary( "Esta tabla contiene el listado de componentes de un menu" );
			$this->addColumn ( 'Ruta', '', true );
			$this->addColumn ( 'Parametros', '');
			$this->addColumnMultilanguage ( 'Menu', 'cdMenu', 'es' );
			$this->addColumnMultilanguage ( 'Componente', 'cdComponente', 'es' );
			$this->addColumnOrder ( 'nOrden', MODIFICAR_ORDER_COMPONENTE, 'ncComponente,ncMenu', 'nOrden' );
			$this->setColumnAction ( 'Componente', VER_COMPONENTE, 'ncComponente' );
			$this->setColumnAction ( 'Menu', VER_MENU, 'ncMenu' );
			$this->oPaging->setDefaultOrderBy( 'nOrden' , true);
		}
	function query()
		{
			// Arma el Query
				$cSql = "SELECT MCo.ncMenu, MCo.ncComponente, cdMenu, cdComponente, MCo.nOrden, MCo.ncOrden, MCo.cParametros
								FROM gtMenuComponente as MCo
								JOIN gtMenu as Men
									ON Men.ncMenu = MCo.ncMenu
								JOIN gtComponente as Con
									ON Con.ncComponente= MCo.ncComponente ";
			// Arma el Filtro de la Consulta
				$this->oFiltro->setDefaultSearchField( "concat(Men.cdMenu, ' ', Con.cdComponente)" );
				$aFiltro = $this->oFiltro->getFilterdArray() ;
				$this->oWhere->addArray ( $aFiltro, 'MCo' );
				$this->oWhere->add( 'MCo.nPanel', $this->aFields[nPanel] );
				
				$cSql .= $this->oWhere->make();
				return $cSql ;
		}
	function makeListActions()
		{
			$cParametroRegistro =  $this->getFieldString();
			//if ( $this->aFields['ncComponente'] )
					$this->addListAction ( AGREGAR_MENUCOMPONENTE, 'nPanel='. $this->aFields[nPanel]. '&amp;bSinComponente=1&amp;ncMenu=' . $this->aFields['ncMenu'] . '&amp;ncComponente=' . $this->aFields['ncComponente'], 'I', VENTANA_SECUNDARIA  );
			//else
					$this->addListAction ( AGREGAR_MENUCOMPONENTE, $cParametroRegistro, 'I', VENTANA_SECUNDARIA  );
		}
	function makeRowActions( $aRow )
		{
			$cParametroRegistro = "ncMenu=" . $aRow["ncMenu"] . '&amp;' .  "ncOrden=" . $aRow["ncOrden"];
			//$this->addRowAction ( MODIFICAR_COMPONENTE, $cParametroRegistro , '', VENTANA_SECUNDARIA );
			$this->addRowAction ( MODIFICAR_MENUCOMPONENTE, $cParametroRegistro , '', VENTANA_SECUNDARIA );
			$this->addRowAction ( ELIMINAR_MENUCOMPONENTE ,  $cParametroRegistro );
		}
	}
?>